﻿using Abp.Domain.Entities.Auditing;
using Camc.Quality.QualityAnalysis.RFormClass;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Camc.Quality.QualityAnalysis.RFormBase
{
    public class RTableBaseShootDto : FullAuditedEntity<Guid>
    {

        #region 基础元素

        /// <summary>
        /// 表名
        /// </summary>
        public virtual string FormName { get;  set; }
        /// <summary>
        /// 序号
        /// </summary>
        public virtual int SerialNum { get;  set; }
        /// <summary>
        /// 工步ID
        /// </summary>
        public virtual Guid RWorkStepEntityId { get;  set; }
        /// <summary>
        /// 工序ID
        /// </summary>
        public virtual Guid RProcessesEntityId { get;  set; }
        /// <summary>
        /// 排序
        /// </summary>
        public virtual int Sort { get;  set; }
        /// <summary>
        /// 部门
        /// </summary>
        public virtual string Deptment { get;  set; }
        /// <summary>
        /// 现场备注
        /// </summary>
        public virtual string RecordRemark { get;  set; }
        /// <summary>
        /// 检测签署
        /// </summary>
        public RInspectionSignatureShootDto InspectionSignature { get; set; }
        /// <summary>
        /// 记录要求
        /// </summary>
        public RRecordRequirementsShootDto RecordRequirements { get; set; }
        /// <summary>
        /// 多媒体
        /// </summary>
        public RMultiMediaShootDto MultiMedia { get; set; }
        /// <summary>
        /// 实测结果表
        /// </summary>
        public RMeasuredResultShootDto MeasuredResult { get; set; }
        /// <summary>
        /// 环境要素
        /// </summary>
        public REnvironmentShootDto Environment { get; set; }


        #endregion

        #region A2所属部段图号
        /// <summary>
        /// 所属部段值
        /// </summary>
        public virtual string ParentProductNum { get;  set; }
        /// <summary>
        /// 所属部段列名
        /// </summary>
        public virtual string ParentProductNum_DisplayName { get;  set; }
        #endregion

        #region A3所属部段名称
        /// <summary>
        /// 部段名称值
        /// </summary>
        public virtual string ParentProductName { get;  set; }
        /// <summary>
        /// 部段列名
        /// </summary>
        public virtual string ParentProductName_DisplayName { get;  set; }
        #endregion

        #region A4零件1图号/代号
        /// <summary>
        /// 图号值
        /// </summary>
        public virtual string FisrtDrawingNum { get;  set; }
        /// <summary>
        /// 图号列名
        /// </summary>
        public virtual string FisrtDrawingNum_DisplayName { get;  set; }
        #endregion

        #region A5零件1名称
        /// <summary>
        /// 零件1名称值
        /// </summary>
        public virtual string FirstDrawingName { get;  set; }
        /// <summary>
        /// 零件1名称列名
        /// </summary>
        public virtual string FirstDrawingName_DisplayName { get;  set; }
        #endregion

        #region A6零件2图号/代号
        /// <summary>
        /// 图号值
        /// </summary>
        public virtual string SecondDrawingNum { get;  set; }
        /// <summary>
        /// 图号列名
        /// </summary>
        public virtual string SecondDrawingNum_DisplayName { get;  set; }
        #endregion

        #region A7零件2名称
        /// <summary>
        /// 名称值
        /// </summary>
        public virtual string SecondDrawingName { get;  set; }
        /// <summary>
        /// 名称列名
        /// </summary>
        public virtual string SecondDrawingName_DisplayName { get;  set; }
        #endregion

        #region A8产品编号
        /// <summary>
        /// 产品编号值
        /// </summary>
        public virtual string ProductNum { get;  set; }
        /// <summary>
        /// 产品编号列名
        /// </summary>
        public virtual string ProductNum_DisplayName { get;  set; }
        #endregion

        #region A9所属型号
        /// <summary>
        /// 所属型号值
        /// </summary>
        public virtual string Model { get;  set; }
        /// <summary>
        /// 所属型号列名
        /// </summary>
        public virtual string Model_DisplayName { get;  set; }
        #endregion

        #region A10记录项目
        /// <summary>
        /// 记录项目值
        /// </summary>
        public virtual string RecordElement { get;  set; }
        /// <summary>
        /// 记录项目列名
        /// </summary>
        public virtual string RecordElement_DisplayName { get;  set; }
        #endregion

        #region A11记录元素
        /// <summary>
        /// 记录元素值
        /// </summary>
        public virtual string RecordItem { get;  set; }
        /// <summary>
        /// 记录元素列名
        /// </summary>
        public virtual string RecordItem_DisplayName { get;  set; }
        #endregion

        #region A12所用工具编号
        /// <summary>
        /// 所用工具编号值
        /// </summary>
        public virtual string ToolUsed { get;  set; }
        /// <summary>
        /// 所用工具编号列名
        /// </summary>
        public virtual string ToolUsed_DisplayName { get;  set; }
        #endregion

        #region A13现场异常记录
        /// <summary>
        /// 现场异常记录值
        /// </summary>
        public virtual string AbnormalRecord { get;  set; }
        /// <summary>
        /// 现场异常记录列名
        /// </summary>
        public virtual string AbnormalRecord_DisplayName { get;  set; }
        #endregion

        #region A14合格证号
        /// <summary>
        /// 合格证号值
        /// </summary>
        public virtual string Certificate { get;  set; }
        /// <summary>
        /// 合格证号列名
        /// </summary>
        public virtual string Certificate_DisplayName { get;  set; }
        #endregion

        #region A15所用工具编号2
        /// <summary>
        /// A15所用工具编号2
        /// </summary>
        public virtual string SecondToolUsed { get;  set; }
        /// <summary>
        /// A15所用工具编号2
        /// </summary>
        public virtual string SecondToolUsed_DisplayName { get;  set; }
        #endregion

        #region A16所用工具编号3
        /// <summary>
        /// A16所用工具编号3
        /// </summary>
        public virtual string ThirdToolUsed { get;  set; }
        /// <summary>
        /// A16所用工具编号3
        /// </summary>
        public virtual string ThirdToolUsed_DisplayName { get;  set; }
        #endregion

        #region A17 参数代号
        /// <summary>
        ///  参数代号
        /// </summary>
        public virtual string ParamCode { get;  set; }

        /// <summary>
        /// 参数代号列名
        /// </summary>
        public virtual string ParamCode_DisplayName { get;  set; }

        #endregion
    }

    public class RInspectionSignatureShootDto : FullAuditedEntity<Guid>
    {
        public RInspectionSignatureShootDto()
        {

        }
        public RInspectionSignatureShootDto(string inspectionSignatureName, string firstOperator, string firstOperator_DisplayName, DateTime? firstOperatorData, string firstOperatorData_DisplayName, string secondOperator, string secondOperator_DisplayName, DateTime? secondOperatorData, string secondOperatorData_DisplayName, string thirdOperator, string thirdOperator_DisplayName, DateTime? thirdOperatorData, string thirdOperatorData_DisplayName, string fourthOperator, string fourthOperator_DisplayName, DateTime? fourthOperatorData, string fourthOperatorData_DisplayName, string fifthOperator, string fifthOperator_DisplayName, DateTime? fifthOperatorData, string fifthOperatorData_DisplayName)
        {
            InspectionSignatureName = inspectionSignatureName;
            //IsInspection = isInspection;,bool isInspection
            FirstOperator = firstOperator;
            FirstOperator_DisplayName = firstOperator_DisplayName;
            FirstOperatorData = firstOperatorData;
            FirstOperatorData_DisplayName = firstOperatorData_DisplayName;
            SecondOperator = secondOperator;
            SecondOperator_DisplayName = secondOperator_DisplayName;
            SecondOperatorData = secondOperatorData;
            SecondOperatorData_DisplayName = secondOperatorData_DisplayName;
            ThirdOperator = thirdOperator;
            ThirdOperator_DisplayName = thirdOperator_DisplayName;
            ThirdOperatorData = thirdOperatorData;
            ThirdOperatorData_DisplayName = thirdOperatorData_DisplayName;
            FourthOperator = fourthOperator;
            FourthOperator_DisplayName = fourthOperator_DisplayName;
            FourthOperatorData = fourthOperatorData;
            FourthOperatorData_DisplayName = fourthOperatorData_DisplayName;
            FifthOperator = fifthOperator;
            FifthOperator_DisplayName = fifthOperator_DisplayName;
            FifthOperatorData = fifthOperatorData;
            FifthOperatorData_DisplayName = fifthOperatorData_DisplayName;
        }


        /// <summary>
        /// 表名
        /// </summary>
        public virtual string InspectionSignatureName { get; set; }
        // public virtual bool IsInspection { get; set; }

        #region 操作者1
        /// <summary>
        /// 操作者1值
        /// </summary>
        public virtual string FirstOperator { get;  set; }
        /// <summary>
        /// 操作者1列名
        /// </summary>
        public virtual string FirstOperator_DisplayName { get;  set; }
        #endregion

        #region 操作者1时间
        /// <summary>
        /// 操作者1值
        /// </summary>
        public virtual DateTime? FirstOperatorData { get;  set; }
        /// <summary>
        /// 操作者1列名
        /// </summary>
        public virtual string FirstOperatorData_DisplayName { get;  set; }
        #endregion

        #region 操作者2
        /// <summary>
        /// 操作者2值
        /// </summary>
        public virtual string SecondOperator { get;  set; }
        /// <summary>
        /// 操作者2列名
        /// </summary>
        public virtual string SecondOperator_DisplayName { get;  set; }
        #endregion

        #region 操作者2时间
        /// <summary>
        /// 操作者2值
        /// </summary>
        public virtual DateTime? SecondOperatorData { get;  set; }
        /// <summary>
        /// 操作者2列名
        /// </summary>
        public virtual string SecondOperatorData_DisplayName { get;  set; }
        #endregion

        #region 操作者3
        /// <summary>
        /// 操作者3值
        /// </summary>
        public virtual string ThirdOperator { get;  set; }
        /// <summary>
        /// 操作者3列名
        /// </summary>
        public virtual string ThirdOperator_DisplayName { get;  set; }
        #endregion

        #region 操作者3时间
        /// <summary>
        /// 操作者3值
        /// </summary>
        public virtual DateTime? ThirdOperatorData { get;  set; }
        /// <summary>
        /// 操作者3列名
        /// </summary>
        public virtual string ThirdOperatorData_DisplayName { get;  set; }
        #endregion

        #region 操作者4
        /// <summary>
        /// 操作者4值
        /// </summary>
        public virtual string FourthOperator { get;  set; }
        /// <summary>
        /// 操作者4列名
        /// </summary>
        public virtual string FourthOperator_DisplayName { get;  set; }
        #endregion

        #region 操作者4时间
        /// <summary>
        /// 操作者4值
        /// </summary>
        public virtual DateTime? FourthOperatorData { get;  set; }
        /// <summary>
        /// 操作者4列名
        /// </summary>
        public virtual string FourthOperatorData_DisplayName { get;  set; }
        #endregion

        #region 操作者5
        /// <summary>
        /// 操作者1值
        /// </summary>
        public virtual string FifthOperator { get;  set; }
        /// <summary>
        /// 操作者5列名
        /// </summary>
        public virtual string FifthOperator_DisplayName { get;  set; }
        #endregion

        #region 操作者5时间
        /// <summary>
        /// 操作者5值
        /// </summary>
        public virtual DateTime? FifthOperatorData { get;  set; }
        /// <summary>
        /// 操作者5列名
        /// </summary>
        public virtual string FifthOperatorData_DisplayName { get;  set; }
        #endregion
    }

    public class RRecordRequirementsShootDto : FullAuditedEntity<Guid>
    {
        public RRecordRequirementsShootDto()
        {

        }

        public RRecordRequirementsShootDto(string recordLocation, string recordLocation_DisplayName, string recordStatus, string recordStatus_DisplayName, string recordRequire, string recordRequire_DisplayName, string recordMainopoint, string recordMainopoint_DisplayName, string designerDemand, string designerDemand_DisplayName, string processorDemand, string processorDemand_DisplayName, string remarks, string remarks_DisplayName)
        {
            RecordLocation = recordLocation;
            RecordLocation_DisplayName = recordLocation_DisplayName;
            RecordStatus = recordStatus;
            RecordStatus_DisplayName = recordStatus_DisplayName;
            RecordRequire = recordRequire;
            RecordRequire_DisplayName = recordRequire_DisplayName;
            RecordMainopoint = recordMainopoint;
            RecordMainopoint_DisplayName = recordMainopoint_DisplayName;
            DesignerDemand = designerDemand;
            DesignerDemand_DisplayName = designerDemand_DisplayName;
            ProcessorDemand = processorDemand;
            ProcessorDemand_DisplayName = processorDemand_DisplayName;
            Remarks = remarks;
            Remarks_DisplayName = remarks_DisplayName;
        }


        #region 记录位置
        /// <summary>
        /// 记录位置值
        /// </summary>
        public string RecordLocation { get;  set; }
        /// <summary>
        /// 记录位置列名
        /// </summary>
        public virtual string RecordLocation_DisplayName { get;  set; }
        #endregion

        #region 记录状态
        /// <summary>
        /// 记录状态值
        /// </summary>
        public string RecordStatus { get;  set; }
        /// <summary>
        /// 记录状态列名
        /// </summary>
        public virtual string RecordStatus_DisplayName { get;  set; }
        #endregion

        #region 记录要求
        /// <summary>
        /// 记录要求值
        /// </summary>
        public string RecordRequire { get;  set; }
        /// <summary>
        /// 记录要求列名
        /// </summary>
        public virtual string RecordRequire_DisplayName { get;  set; }
        #endregion

        #region 记录要点
        /// <summary>
        /// 记录要点值
        /// </summary>
        public string RecordMainopoint { get;  set; }
        /// <summary>
        /// 记录要点列名
        /// </summary>
        public virtual string RecordMainopoint_DisplayName { get;  set; }
        #endregion

        #region 设计要求
        /// <summary>
        /// 设计要求值
        /// </summary>
        public string DesignerDemand { get;  set; }
        /// <summary>
        /// 设计要求列名
        /// </summary>
        public virtual string DesignerDemand_DisplayName { get;  set; }
        #endregion

        #region 工艺要求
        /// <summary>
        /// 工艺要求值
        /// </summary>
        public string ProcessorDemand { get;  set; }
        /// <summary>
        /// 工艺要求列名
        /// </summary>
        public virtual string ProcessorDemand_DisplayName { get;  set; }
        #endregion

        #region 备注
        /// <summary>
        /// 备注值
        /// </summary>
        public string Remarks { get;  set; }
        /// <summary>
        /// 备注列名
        /// </summary>
        public virtual string Remarks_DisplayName { get;  set; }
        #endregion
    }

    public class RMultiMediaShootDto : FullAuditedEntity<Guid>
    {
        public RMultiMediaShootDto()
        {

        }
        public RMultiMediaShootDto(string photoNo, string photoNo_DisplayName, string secondPhotoNo = null, string secondPhotoNo_DisplayName = null, string thirdPhotoNo = null, string thirdPhotoNo_DisplayName = null, string fourthPhotoNo = null, string fourthPhotoNo_DisplayName = null)
        {
            PhotoNo = photoNo;
            PhotoNo_DisplayName = photoNo_DisplayName;
            SecondPhotoNo = secondPhotoNo;
            SecondPhotoNo_DisplayName = secondPhotoNo_DisplayName;
            ThirdPhotoNo = thirdPhotoNo;
            ThirdPhotoNo_DisplayName = thirdPhotoNo_DisplayName;
            FourthPhotoNo = fourthPhotoNo;
            FourthPhotoNo_DisplayName = fourthPhotoNo_DisplayName;
        }
        #region 照相（摄像）编号
        /// <summary>
        /// 所属部段值
        /// </summary>
        public virtual string PhotoNo { get;  set; }
        /// <summary>
        /// 所属部段列名
        /// </summary>
        public virtual string PhotoNo_DisplayName { get;  set; }
        #endregion

        #region 照相（摄像）编号2
        /// <summary>
        /// 所属部段值
        /// </summary>
        public virtual string SecondPhotoNo { get;  set; }
        /// <summary>
        /// 所属部段列名
        /// </summary>
        public virtual string SecondPhotoNo_DisplayName { get;  set; }
        #endregion

        #region 照相（摄像）编号3
        /// <summary>
        /// 所属部段值
        /// </summary>
        public virtual string ThirdPhotoNo { get;  set; }
        /// <summary>
        /// 所属部段列名
        /// </summary>
        public virtual string ThirdPhotoNo_DisplayName { get;  set; }
        #endregion

        #region 照相（摄像）编号4
        /// <summary>
        /// 所属部段值
        /// </summary>
        public virtual string FourthPhotoNo { get;  set; }
        /// <summary>
        /// 所属部段列名
        /// </summary>
        public virtual string FourthPhotoNo_DisplayName { get;  set; }
        #endregion
    }

    public class RMeasuredResultShootDto : FullAuditedEntity<Guid>
    {
        public RMeasuredResultShootDto()
        {

        }

        public RMeasuredResultShootDto(string firstMeasuredValues, string firstMeasuredValues_DisplayName, string secondMeasuredValues, string secondMeasuredValues_DisplayName, string thirdMeasuredValues, string thirdMeasuredValues_DisplayName, string fourthMeasuredValues, string fourthMeasuredValues_DisplayName, string firstConfirmResult, string firstConfirmResult_DisplayName, string secondConfirmResult, string secondConfirmResult_DisplayName, string thirdConfirmResult, string thirdConfirmResult_DisplayName, string measuredActual, string measuredActual_DisplayName)
        {
            FirstMeasuredValues = firstMeasuredValues;
            FirstMeasuredValues_DisplayName = firstMeasuredValues_DisplayName;
            SecondMeasuredValues = secondMeasuredValues;
            SecondMeasuredValues_DisplayName = secondMeasuredValues_DisplayName;
            ThirdMeasuredValues = thirdMeasuredValues;
            ThirdMeasuredValues_DisplayName = thirdMeasuredValues_DisplayName;
            FourthMeasuredValues = fourthMeasuredValues;
            FourthMeasuredValues_DisplayName = fourthMeasuredValues_DisplayName;
            FirstConfirmResult = firstConfirmResult;
            FirstConfirmResult_DisplayName = firstConfirmResult_DisplayName;
            SecondConfirmResult = secondConfirmResult;
            SecondConfirmResult_DisplayName = secondConfirmResult_DisplayName;
            ThirdConfirmResult = thirdConfirmResult;
            ThirdConfirmResult_DisplayName = thirdConfirmResult_DisplayName;
            MeasuredActual = measuredActual;
            MeasuredActual_DisplayName = measuredActual_DisplayName;
        }



        #region 实测值1
        /// <summary>
        /// 实测值1
        /// </summary>
        public virtual string FirstMeasuredValues { get;  set; }
        /// <summary>
        /// 实测值1列名
        /// </summary>
        public virtual string FirstMeasuredValues_DisplayName { get;  set; }
        #endregion

        #region E4实测值2
        /// <summary>
        /// 实测值2
        /// </summary>
        public virtual string SecondMeasuredValues { get;  set; }
        /// <summary>
        /// 实测值2列名
        /// </summary>
        public virtual string SecondMeasuredValues_DisplayName { get;  set; }
        #endregion

        #region E5实测值3
        /// <summary>
        /// 实测值3
        /// </summary>
        public virtual string ThirdMeasuredValues { get;  set; }
        /// <summary>
        /// 实测值3列名
        /// </summary>
        public virtual string ThirdMeasuredValues_DisplayName { get;  set; }
        #endregion

        #region E6实测值4
        /// <summary>
        /// 实测值4
        /// </summary>
        public virtual string FourthMeasuredValues { get;  set; }
        /// <summary>
        /// 实测值4列名
        /// </summary>
        public virtual string FourthMeasuredValues_DisplayName { get;  set; }
        #endregion

        #region E2确认结果1
        /// <summary>
        /// 确认结果值
        /// </summary>
        public virtual string FirstConfirmResult { get;  set; }
        /// <summary>
        /// 确认结果列名
        /// </summary>
        public virtual string FirstConfirmResult_DisplayName { get;  set; }
        #endregion

        #region E7确认结果2
        /// <summary>
        /// 确认结果值
        /// </summary>
        public virtual string SecondConfirmResult { get;  set; }
        /// <summary>
        /// 确认结果列名
        /// </summary>
        public virtual string SecondConfirmResult_DisplayName { get;  set; }
        #endregion

        #region E8确认结果3
        /// <summary>
        /// 确认结果值
        /// </summary>
        public virtual string ThirdConfirmResult { get;  set; }
        /// <summary>
        /// 确认结果列名
        /// </summary>
        public virtual string ThirdConfirmResult_DisplayName { get;  set; }
        #endregion

        #region E3实测情况
        /// <summary>
        /// 实测情况值
        /// </summary>
        public virtual string MeasuredActual { get;  set; }
        /// <summary>
        /// 实测情况列名
        /// </summary>
        public virtual string MeasuredActual_DisplayName { get;  set; }
        #endregion
    }

    public class REnvironmentShootDto : FullAuditedEntity<Guid>
    {
        public REnvironmentShootDto()
        {

        }

        public REnvironmentShootDto(string temperature, string temperature_DisplayName, string humidity, string humidity_DisplayName, string atmPressure, string atmPressure_DisplayName)
        {
            Temperature = temperature;
            Temperature_DisplayName = temperature_DisplayName;
            Humidity = humidity;
            Humidity_DisplayName = humidity_DisplayName;
            AtmPressure = atmPressure;
            AtmPressure_DisplayName = atmPressure_DisplayName;
        }

        #region 温度
        /// <summary>
        /// 温度值
        /// </summary>
        public virtual string Temperature { get;  set; }
        /// <summary>
        /// 温度列名
        /// </summary>
        public virtual string Temperature_DisplayName { get;  set; }
        #endregion

        #region 湿度
        /// <summary>
        /// 湿度值
        /// </summary>
        public virtual string Humidity { get;  set; }
        /// <summary>
        /// 湿度列名
        /// </summary>
        public virtual string Humidity_DisplayName { get;  set; }
        #endregion

        #region 大气压力
        /// <summary>
        /// 大气压力值
        /// </summary>
        public virtual string AtmPressure { get;  set; }
        /// <summary>
        /// 大气压力列名
        /// </summary>
        public virtual string AtmPressure_DisplayName { get;  set; }
        #endregion
    }
}
